package com.starview.star.compiler.cafe.type;

import java.util.List;
import java.util.SortedMap;

import com.starview.platform.data.type.IType;
import com.starview.platform.data.type.IValueSpecifier;
import com.starview.platform.data.type.TypeConstraintException;
import com.starview.star.compiler.cafe.compile.ISpec;



public interface ICafeTypeDescription
{
  String getJavaName();

  String getJavaSig();

  IValueSpecifier declareConstructor(String name, IType conType, int conIx, String javaTypeName, String javaOwner,
      String javaInvokeSig, String javaSafeName) throws TypeConstraintException;

  IValueSpecifier declareConstructor(String name, IType conType, int conIx, ISpec spec, String javaTypeName,
      String javaOwner, String javaConSig, String javaSafeName, List<ISpec> fields, SortedMap<String, Integer> index)
      throws TypeConstraintException;
}
